//node 使用fs模块可以将html,css,图片，音频等文件转换js对象或者字符串返回给客户端
var http = require('http');
var fs = require("fs");
var URL = require("url");
var ico = fs.readFileSync("./static/favicon.ico");
var getApi = require('./src/api.js') //原生node不支持 import引入
var getStatic = require('./src/static.js') 
var router = require('./src/router.js') 
var util = require('util');

//node中的全局对象：__filename,__dirname ,process
console.log('当前文件名：',__filename)
console.log('当前目录：',__dirname)

http.createServer(function (req, res) {
    /**
     * parse 方法需要两个参数：
     * 第一个参数是地址
     * 第二个参数是 true 的话表示把 get 传值转换成对象(url模块只能解析get请求的参数)
     */ 
    let url = URL.parse(req.url,true)
    // res.end(util.inspect(url.parse(req.url, true)));
    let pathname = url.pathname
    if(req.url != "/favicon.ico") {
        if(/static/.test(pathname)){//请求静态文件(html也算静态文件)
            getStatic(req,res,url)
        }else if(/api/.test(pathname)){//请求接口
            //api接口 
            getApi(req,res,url)
        }else{//请求router
            router(req,res,url)
        }
    }else{
        res.writeHead(200,{
            "Content-Type":"image/x-icon;charset=UTF-8"
        })
        res.end(ico.toString());
    }

}).listen(3000);
//node可以同时监听多个端口
// http.createServer(function (req, res) {
//     res.end('prot 4000')
// }).listen(4000)

// 终端打印如下信息
console.log('Server running at http://127.0.0.1:3000/');